package model

import "time"

// Customer 客户模型
type Customer struct {
	ID        uint      `json:"id" gorm:"primarykey"`
	CreatedAt time.Time `json:"created_at"`
	UpdatedAt time.Time `json:"updated_at"`
	Code      string    `json:"code" gorm:"type:varchar(50);uniqueIndex;not null"` // 客户编码
	Name      string    `json:"name" gorm:"type:varchar(100);not null"`            // 客户名称
	Contact   string    `json:"contact" gorm:"type:varchar(50);not null"`          // 联系人
	Phone     string    `json:"phone" gorm:"type:varchar(20);not null"`            // 联系电话
	Email     string    `json:"email" gorm:"type:varchar(100)"`                    // 电子邮箱
	Address   string    `json:"address" gorm:"type:varchar(200)"`                  // 地址
	Status    int       `json:"status" gorm:"type:tinyint;not null;default:1"`     // 状态：1-启用 2-禁用
	TaxNumber string    `json:"tax_number" gorm:"type:varchar(50)"`                // 税号
	Bank      string    `json:"bank" gorm:"type:varchar(100)"`                     // 开户行
	Account   string    `json:"account" gorm:"type:varchar(50)"`                   // 银行账号
	Level     int       `json:"level" gorm:"type:tinyint;not null;default:1"`      // 客户等级：1-普通 2-VIP 3-重要
	Credit    int       `json:"credit" gorm:"type:tinyint;not null;default:1"`     // 信用等级：1-良好 2-一般 3-差
	Remark    string    `json:"remark" gorm:"type:varchar(500)"`                   // 备注
}

// TableName 设置模型对应的数据库表名
func (Customer) TableName() string {
	return "customers"
}
